Real-time tracking of product using a cloud platform

ABSTRACT

A cloud-based product tracking system is provided. The product tracking system runs on a cloud platform and collects data from multiple devices throughout a supply chain, the data relating to production, transportation, storage, and sales of a product. Related subsets of the collected data are aggregated and correlated at the cloud platform based on contextual metadata associated with the data, a data model of the supply chain and systems therein, or other such factors. The cloud-based tracking system analyzes the correlated information to determine a status of a product within the supply chain. The tracking system also leverages the correlated data to analyze product flow, identify inefficiencies within the supply chain, and generate recommendations for modifying portions of the supply chain to mitigate the identified inefficiencies.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 61/587,531, filed on Feb. 9, 2012, and entitled“INDUSTRIAL AUTOMATION CLOUD COMPUTING SYSTEMS AND METHODS,” and U.S.Provisional Patent Application Ser. No. 61/642,964, filed May 4, 2012,and entitled “CLOUD GATEWAY FOR INDUSTRIAL AUTOMATION INFORMATION.” Thisapplication is also related to U.S. patent application Ser. No.10/162,315, filed on Jun. 4, 2002 (which issued as U.S. Pat. No.7,151,966 on Dec. 19, 2006), and entitled “SYSTEM AND METHODOLGYPROVIDING OPEN INTERFACE AND DISTRIBUTED PROCESSING IN AN INDUSTRIALCONTROLLER ENVIRONMENT.” The entireties of these applications areincorporated herein by reference.

TECHNICAL FIELD

The subject application relates generally to industrial automation, and,more particularly, to tracking of products through a manufacturing andsupply chain using a cloud platform.

BACKGROUND

Industrial controllers and their associated I/O devices are central tothe operation of modern automation systems. These controllers interactwith field devices on the plant floor to control automated processesrelating to such objectives as product manufacture, material handling,batch processing, supervisory control, and other such applications.Industrial controllers store and execute user-defined control programsto effect decision-making in connection with the controlled process.Such programs can include, but are not limited to, ladder logic,sequential function charts, function block diagrams, structured text, orother such programming structures.

Manufacturing operations, including control of industrial processes bythe industrial controllers described above, represent one component of alarger business enterprise. On a higher level, business operations suchas financial analysis, marketing, sales, order management, long termbusiness planning, resource management, inventory management, and thelike collectively represent another element of the enterprise. Moreover,the plant-floor and business level operations of the manufacturingfacility collectively represent only one entity of a larger productsupply chain that can also include entities such as material suppliers,inventory or warehousing, shipping, and retail. All of these supplychain entities are capable of generating vast amounts of near real-timeand historical data. On the manufacturing side, this data can includeproduction statistics, data relating to machine health, alarm statuses,operator feedback, electrical or mechanical load data, and other suchmanufacturing data. Warehouses typically track incoming and outgoingshipments in order to maintain accurate inventory records. Sales datamaintained by a retail entity can be used to drive production schedules,inventory levels, and purchase planning at the manufacturing andsupplier sides.

Although operations at the various supply chain entities are related toand often dependent upon one another, data generated at the varioussupply chain entities—or even at different areas within the sameentity—is often only loosely integrated, with slow (e.g., non-real-time,non-automated) information exchange between the entities. Consequently,analyzing potential correlations between data sets generated at thevarious stages of the supply chain can be challenging. Moreover, thelack of integration between the supply chain entities can renderaccurate, near real-time product tracking through the supply chaindifficult.

The above-described deficiencies of today's industrial control andbusiness systems are merely intended to provide an overview of some ofthe problems of conventional systems, and are not intended to beexhaustive. Other problems with conventional systems and correspondingbenefits of the various non-limiting embodiments described herein maybecome further apparent upon review of the following description.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some aspects described herein. This summary is not anextensive overview nor is intended to identify key/critical elements orto delineate the scope of the various aspects described herein. Its solepurpose is to present some concepts in a simplified form as a prelude tothe more detailed description that is presented later.

One or more embodiments of the present disclosure relate to the use ofcloud-based services to facilitate near real-time product trackingthrough a supply chain. To this end, a cloud-based product trackingsystem running as a service on a cloud platform can receive product datafrom various supply chain entities and leverage the collected data toprovide product tracking or supply chain analysis information. Datareceived by the product tracking system can include industrial datareceived from one or more industrial automation systems; inventory data;near real-time shipping information; business-level data includingsales, finance, and purchasing information; and other such supply chaininformation.

The supply chain data can be provided to the cloud-based producttracking system by cloud-capable industrial devices located at therespective industrial systems or supply chain entities. The data canalso be provided by cloud gateways that gather data from industrialdevices, business servers, and the like, and push the data to theproduct tracking system. In this manner, the cloud-based producttracking system can collect product-related data from multiple entities,potentially at different geographic locations, and store, filter,associate, correlate, and/or aggregate the collected data in meaningfulways according to the needs of the user. The product tracking system cangenerate displays screens for rendering near real-time trackinginformation based on the collected data, and deliver the displays toauthorized Internet-capable display devices via the Internet. Thus, thecloud-based product tracking system can allow authorized users toremotely track products through the supply chain using any suitablecomputing device having access to the Internet (e.g., phone, desktopcomputer, laptop computer, tablet computer, etc.).

The product tracking system can allow near real-time product informationto be compared with business-level metrics. For example, personnel canuse product tracking data provided by the cloud-based product trackingsystem to compare a sales order with a current location of a productwithin a supply chain. The product tracking system can also applycloud-side analytics to the collected data to identify actual orpotential bottlenecks or other inefficiencies in the supply chain, andprovide guidance regarding possible modifications to production orsupply chain processes that may mitigate such inefficiencies. In someembodiments, the product tracking system can also be integrated withbusiness-level systems to dynamically modify orders for supplies,shipping orders, or other business-level operations based on currentsupply chain information.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative of various ways which can be practiced, all of which areintended to be covered herein. Other advantages and novel features maybecome apparent from the following detailed description when consideredin conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high-level overview of an industrial enterprise thatleverages cloud-based services.

FIG. 2 is a block diagram of a cloud-based product tracking system.

FIG. 3 illustrates an exemplary cloud-based architecture for trackingproduct through an industrial supply chain.

FIG. 4 is a block diagram illustrating components of an exemplarycloud-based product tracking system.

FIG. 5 illustrates an exemplary configuration in which an industrialdevice acts as a cloud proxy for other industrial devices comprising anautomation system.

FIG. 6 illustrates transformation of raw industrial data intocontextualized data.

FIG. 7 illustrates an embodiment in which a firewall box serves as acloud proxy for a set of industrial devices.

FIG. 8 illustrates an exemplary cloud gateway configuration for sendingdata from a mobile system to a cloud platform.

FIG. 9 illustrates exemplary configuration data for a cloud interfacecomponent.

FIG. 10 illustrates an exemplary organizational hierarchy that can beused as a basis for a data model of a manufacturing entity within asupply chain.

FIG. 11 illustrates an exemplary supply chain.

FIG. 12 illustrates an exemplary architecture for issuing supply chainmanagement instructions from a cloud platform.

FIG. 13 is a high-level overview depicting synchronization of a deviceclock with a cloud clock.

FIG. 14 illustrates an exemplary cloud-based notification architecture.

FIG. 15 is a flowchart of an example methodology for tracking productthrough a supply chain using a cloud platform.

FIG. 16 is a flowchart of an example methodology for identifyinginefficiencies in a supply chain using a cloud platform.

FIG. 17 is an example computing environment.

FIG. 18 is an example networking environment.

DETAILED DESCRIPTION

The subject disclosure is now described with reference to the drawings,wherein like reference numerals are used to refer to like elementsthroughout. In the following description, for purposes of explanation,numerous specific details are set forth in order to provide a thoroughunderstanding thereof. It may be evident, however, that the subjectdisclosure can be practiced without these specific details. In otherinstances, well-known structures and devices are shown in block diagramform in order to facilitate a description thereof.

As used in this application, the terms “component,” “system,”“platform,” “layer,” “controller,” “terminal,” “station,” “node,”“interface” are intended to refer to a computer-related entity or anentity related to, or that is part of, an operational apparatus with oneor more specific functionalities, wherein such entities can be eitherhardware, a combination of hardware and software, software, or softwarein execution. For example, a component can be, but is not limited tobeing, a process running on a processor, a processor, a hard disk drive,multiple storage drives (of optical or magnetic storage medium)including affixed (e.g., screwed or bolted) or removably affixedsolid-state storage drives; an object; an executable; a thread ofexecution; a computer-executable program, and/or a computer. By way ofillustration, both an application running on a server and the server canbe a component. One or more components can reside within a processand/or thread of execution, and a component can be localized on onecomputer and/or distributed between two or more computers. Also,components as described herein can execute from various computerreadable storage media having various data structures stored thereon.The components may communicate via local and/or remote processes such asin accordance with a signal having one or more data packets (e.g., datafrom one component interacting with another component in a local system,distributed system, and/or across a network such as the Internet withother systems via the signal). As another example, a component can be anapparatus with specific functionality provided by mechanical partsoperated by electric or electronic circuitry which is operated by asoftware or a firmware application executed by a processor, wherein theprocessor can be internal or external to the apparatus and executes atleast a part of the software or firmware application. As yet anotherexample, a component can be an apparatus that provides specificfunctionality through electronic components without mechanical parts,the electronic components can include a processor therein to executesoftware or firmware that provides at least in part the functionality ofthe electronic components. As further yet another example, interface(s)can include input/output (I/O) components as well as associatedprocessor, application, or Application Programming Interface (API)components. While the foregoing examples are directed to aspects of acomponent, the exemplified aspects or features also apply to a system,platform, interface, layer, controller, terminal, and the like.

As used herein, the terms “to infer” and “inference” refer generally tothe process of reasoning about or inferring states of the system,environment, and/or user from a set of observations as captured viaevents and/or data. Inference can be employed to identify a specificcontext or action, or can generate a probability distribution overstates, for example. The inference can be probabilistic—that is, thecomputation of a probability distribution over states of interest basedon a consideration of data and events. Inference can also refer totechniques employed for composing higher-level events from a set ofevents and/or data. Such inference results in the construction of newevents or actions from a set of observed events and/or stored eventdata, whether or not the events are correlated in close temporalproximity, and whether the events and data come from one or severalevent and data sources.

In addition, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.” That is, unless specified otherwise, or clearfrom the context, the phrase “X employs A or B” is intended to mean anyof the natural inclusive permutations. That is, the phrase “X employs Aor B” is satisfied by any of the following instances: X employs A; Xemploys B; or X employs both A and B. In addition, the articles “a” and“an” as used in this application and the appended claims shouldgenerally be construed to mean “one or more” unless specified otherwiseor clear from the context to be directed to a singular form.

Furthermore, the term “set” as employed herein excludes the empty set;e.g., the set with no elements therein. Thus, a “set” in the subjectdisclosure includes one or more elements or entities. As anillustration, a set of controllers includes one or more controllers; aset of data resources includes one or more data resources; etc.Likewise, the term “group” as utilized herein refers to a collection ofone or more entities; e.g., a group of nodes refers to one or morenodes.

Various aspects or features will be presented in terms of systems thatmay include a number of devices, components, modules, and the like. Itis to be understood and appreciated that the various systems may includeadditional devices, components, modules, etc. and/or may not include allof the devices, components, modules etc. discussed in connection withthe figures. A combination of these approaches also can be used.

FIG. 1 illustrates a high-level overview of an exemplary industrialenterprise that leverages cloud-based services, including but notlimited to the product tracking services described herein. Theenterprise comprises one or more industrial facilities 104, each havinga number of industrial devices 108 and 110 in use. The industrialdevices 108 and 110 can make up one or more automation systems operatingwithin the respective facilities 104. Exemplary automation systems caninclude, but are not limited to, batch control systems (e.g., mixingsystems), continuous control systems (e.g., PID control systems), ordiscrete control systems. Industrial devices 108 and 110 can includesuch devices as industrial controllers (e.g., programmable logiccontrollers or other types of programmable automation controllers);field devices such as sensors and meters; motor drives; human-machineinterfaces (HMIs); industrial robots, barcode markers and readers;vision system devices (e.g., vision cameras); smart welders; or othersuch industrial devices.

Exemplary automation systems can include one or more industrialcontrollers that facilitate monitoring and control of their respectiveprocesses. The controllers exchange data with the field devices usingnative hardwired I/O or via a plant network such as Ethernet/IP, DataHighway Plus, ControlNet, Devicenet, or the like. A given controllertypically receives any combination of digital or analog signals from thefield devices indicating a current state of the devices and theirassociated processes (e.g., temperature, position, part presence orabsence, fluid level, etc.), and executes a user-defined control programthat performs automated decision-making for the controlled processesbased on the received signals. The controller then outputs appropriatedigital and/or analog control signaling to the field devices inaccordance with the decisions made by the control program. These outputscan include device actuation signals, temperature or position controlsignals, operational commands to a machining or material handling robot,mixer control signals, motion control signals, and the like. The controlprogram can comprise any suitable type of code used to process inputsignals read into the controller and to control output signals generatedby the controller, including but not limited to ladder logic, sequentialfunction charts, function block diagrams, structured text, or other suchplatforms.

Although the exemplary overview illustrated in FIG. 1 depicts theindustrial devices 108 and 110 as residing in stationary industrialfacilities 104, the industrial devices may also be part of a mobilecontrol application, such as a system contained in a truck or otherservice vehicle.

According to one or more embodiments of this disclosure, industrialdevices 108 and 110 can be coupled to a cloud platform to leveragecloud-based applications. That is, the industrial device 108 and 110 canbe configured to discover and interact with cloud-based computingservices 112 hosted by cloud platform 102. Cloud platform 102 can be anyinfrastructure that allows shared computing services 112 to be accessedand utilized by cloud-capable devices. Cloud platform 102 can be apublic cloud accessible via the Internet by devices having Internetconnectivity and appropriate authorizations to utilize the services.Alternatively, cloud platform 102 can be a private cloud operatedinternally by the enterprise. An exemplary private cloud can comprise aset of servers hosting the cloud computing services 112 and residing ona corporate network protected by a firewall.

Cloud services 112 can include, but are not limited to, data storage,data analysis, product tracking, control applications (e.g.,applications that can generate and deliver control instructions toindustrial devices 108 and 110 based on analysis of near real-timesystem data or other factors), visualization applications such ascloud-based HMIs, reporting applications, Enterprise Resource Planning(ERP) applications, notification services, or other such applications.If cloud platform 102 is a web-based cloud, industrial devices 108 and110 at the respective industrial facilities 104 may interact with cloudservices 112 via the Internet. In an exemplary configuration, industrialdevices 108 and 110 may access the cloud services 112 through separatecloud gateways 106 at the respective industrial facilities 104, wherethe industrial devices 108 and 110 connect to the cloud gateways 106through a physical or wireless local area network or radio link. Inanother exemplary configuration, the industrial devices may access thecloud platform directly using an integrated cloud interface.

Providing industrial devices with cloud capability can offer a number ofadvantages particular to industrial automation. For one, cloud-basedstorage offered by the cloud platform can be easily scaled toaccommodate the large quantities of data generated daily by anindustrial enterprise. Moreover, multiple industrial facilities orsupply chain entities at different geographical locations can migratetheir respective automation data to the cloud for aggregation,collation, collective analysis, and enterprise-level reporting withoutthe need to establish a private network between the facilities.Industrial devices 108 and 110 having smart configuration capability canbe configured to automatically detect and communicate with the cloudplatform 102 upon installation at any facility, simplifying integrationwith existing cloud-based data storage, analysis, or reportingapplications used by the enterprise. In another exemplary application,cloud-based diagnostic applications can monitor the health of respectiveautomation systems or their associated industrial devices across anentire plant, or across multiple industrial facilities that make up anenterprise. Cloud-based lot control applications can be used to track aunit of product through its stages of production and collect productiondata for each unit as it passes through each stage (e.g., barcodeidentifier, production statistics for each stage of production, qualitytest data, abnormal flags, etc.). These industrial cloud-computingapplications are only intended to be exemplary, and the systems andmethods described herein are not limited to these particularapplications. The cloud platform 102 can allow builders of industrialapplications to provide scalable solutions as a service, removing theburden of maintenance, upgrading, and backup of the underlyinginfrastructure and framework.

FIG. 2 is a block diagram of a product tracking system that can beimplemented on a cloud platform to facilitate tracking a status of aproduct through a supply chain. Aspects of the systems, apparatuses, orprocesses explained in this disclosure can constitute machine-executablecomponents embodied within machine(s), e.g., embodied in one or morecomputer-readable mediums (or media) associated with one or moremachines. Such components, when executed by one or more machines, e.g.,computer(s), computing device(s), automation device(s), virtualmachine(s), etc., can cause the machine(s) to perform the operationsdescribed.

Product tracking system 202 can include a device interface component204, a client interface component 206, a correlation component 208, atracking component 210, one or more processors 212, and memory 214. Invarious embodiments, one or more of the device interface component 204,client interface component 206, correlation component 208, trackingcomponent 210, one or more processors 212, and memory 214 can beelectrically and/or communicatively coupled to one another to performone or more of the functions of the product tracking system 202. In someembodiments, components 204, 206, 208, and 210 can comprise softwareinstructions stored on memory 214 and executed by processor(s) 212.Product tracking system 202 may also interact with other hardware and/orsoftware components not depicted in FIG. 2. For example, processor(s)212 may interact with one or more external user interface devices, suchas a keyboard, a mouse, a display monitor, a touchscreen, or other suchinterface devices.

Device interface component 204 can be configured to receive industrialdata or other product related data sent by one or more cloud-capableindustrial device, cloud gateways, or other sources of product data.Client interface component 206 can be configured to receive a requestfor product data from a remote client device via an Internet connection,and to deliver the requested data to the client device. This can includedelivery of pre-configured display screens to the remote devices andrendering the product data via the displays screens. Correlationcomponent 208 can be configured to aggregate and correlate subsets ofthe data received by device interface component 204. Tracking component210 can be configured to determine a current status of a product withinan industrial supply chain based on the data received by deviceinterface component 204 and correlations determined by correlationcomponent 208. The one or more processors 212 can perform one or more ofthe functions described herein with reference to the systems and/ormethods disclosed. Memory 214 can be a computer-readable storage mediumstoring computer-executable instructions and/or information forperforming the functions described herein with reference to the systemsand/or methods disclosed.

FIG. 3 illustrates an exemplary cloud-based architecture for trackingproduct through an industrial supply chain. An exemplary simplifiedsupply chain can include a supplier 304, a manufacturing facility 306, awarehouse 308, and a retail entity 310. However, the supply chain cancomprise more or fewer entities without departing from the scope of thisdisclosure. For simplicity, FIG. 3 depicts a single block for eachsupply chain entity. However, it is to be appreciated that a givensupply chain can comprise multiple entities for each entity type. Forexample, a manufacturing facility may rely on materials provided bymultiple suppliers. Likewise, the supply chain may include multiplewarehouse entities to provide storage for various products produced bythe manufacturing facility, and multiple retail entities for selling theproducts to end customers.

The various supply chain entities can generate a large amount of data inconnection with their roles in the supply chain. For example, supplier304 and manufacturing facility 306 can include plant floor devices thatgenerate near real-time and historical industrial data relating toproduction of the materials or products, as well as business-levelinformation relating to purchase orders, intakes, shipments, enterpriseresource planning (ERP), and the like. Warehouse 308 can maintainrecords of incoming and outgoing product and track inventory levels forrespective products. Retail entity 310 can track sales, retailinventory, financial information, demand metrics, and other suchinformation. Additional information relating to transportation ofmaterials or products between stages of the supply chain can also begenerated, including but not limited to geographical location obtainedfrom global positioning systems.

According to one or more embodiments of the present disclosure, datasources associated with each of the supply chain entities can provideindustrial or business data to a cloud platform 302 to facilitatecloud-based tracking of products through the supply chain. Cloudplatform 302 can execute product tracking services that aggregate andcorrelate data provided by the various supply chain stages, and provideinformation about a product's state within the supply chain based on theanalysis. These cloud-based services can include, but are not limitedto, tracking the product's physical location within the supply chain,dynamically managing inventory based on demand data and currentproduction statuses, dynamically managing orders for materials orproducts based on comparisons between pending orders and a current stateof an ordered product, providing metrics relating to the flow ofproducts through the supply chain, or identifying and trouble-shootinginefficiencies in product flows through the supply chain. These andother services will be described in more detail below.

FIG. 4 is a block diagram illustrating components of an exemplarycloud-based product tracking system. As described in previous examples,cloud-based product tracking system 402 can reside on a cloud platformand receive data from respective data generating devices 404. In one ormore embodiments, the cloud-based product tracking system 402 can resideand execute on the cloud platform as a cloud-based service, and accessto the cloud platform and product tracking system 402 can be provided tocustomers as a subscription service by a provider of the producttracking services.

Devices 404 can comprise substantially any type of device that contains,collects, or generates data relating to a product or material within asupply chain. For example, industrial devices 404 ₁ and 404 ₂ can beplant floor devices that are part of respective automation systems atsupply and manufacturing entities of the supply chain. These devices caninclude, but are not limited to, industrial controllers, sensors,meters, motor drives, HMI terminals, industrial robots, or other suchindustrial devices. Industrial devices 404 ₁ and 404 ₂ can be configuredwith cloud capabilities that allow the devices to be communicativelycoupled to the cloud platform and exchange data with services residingthereon. Alternatively, industrial devices 404 ₁ and 404 ₂ can providetheir data to the cloud platform via respective cloud proxy devices orother cloud gateways that collect data from multiple devices and movethe data to the cloud platform for storage and processing. These variousconfigurations are described in more detail below.

As illustrated in FIG. 4, data from an inventory server 404 ₃ at awarehouse stage of the supply chain can also provide data to producttracking system 402. Inventory server 404 ₃ can maintain, for example,current inventory levels for various products, records of productintakes and shipments, product order information, available warehousecapacity, and other such information. It is to be appreciated that othertypes of devices can provide data to product tracking system 402 inaddition to devices 404 ₁-404 ₃. For example, mobile cloud gateways canbe embedded on cargo vehicles that transport materials and productbetween supply chain entities. These cloud gateways can provide GPSinformation to the cloud indicating a current geographical location of aproduct shipment as the shipment is being transported through the supplychain. Additionally, sales and demand information can be provided toproduct tracking system 402 by retail servers associated with retailoutlets. At the supply and manufacturing stages, higher level businesssystems (e.g., ERP systems, reporting applications, financial systems,etc.) can provide business data relating to operations of the respectivefacilities. Devices 404 can be associated with respective automationsystems at geographically diverse industrial facilities, or at differentareas within the same facility which may or may not reside on a commonlocal area network.

Data provided by devices 404 can be received by product tracking system402 via a device interface component 414. Devices 404 can send theirrespective data to cloud-based product tracking system 402 at afrequency defined by the product tracking system 402. For example, anadministrator or other user with suitable administrative privileges candefine an upload frequency individually for the respective devices 404,and device interface component 414 can provide correspondingconfiguration instructions to the respective devices 404 configuring theupload frequencies accordingly. Alternatively or in addition, producttracking system 402 may dynamically select a suitable upload frequencyfor the respective devices 404 during operation. For example, in orderto control costs associated with cloud resource utilization, anadministrator can, in one or more embodiments, configure a maximum totalbandwidth usage for the cloud-based product tracking system 402, suchthat the total instantaneous bandwidth usage for data traffic betweenthe devices 404 and cloud-based product tracking system 402 is not toexceed the configured maximum bandwidth. In such embodiments,cloud-based product tracking system 402 can monitor the total bandwidthutilization substantially in real-time, and dynamically reduce theupload frequency of one or more devices 404 in response to adetermination that the total bandwidth usage is approaching the definedmaximum bandwidth.

In another example, an administrator can configure a limit on the totalamount of cloud storage to be utilized. Accordingly, if the producttracking system 402 determines that this storage limit is beingapproached, the product tracking system can begin deleting the oldestdata from cloud storage according to a preconfigured deletion routine.In an alternative approach, the product tracking system 402 can send aninstruction to one or more devices 404 to reduce their uploadfrequencies in response to determining that the storage limit is beingapproached, thereby slowing the consumption of cloud storage resources.The cloud-based product tracking system 402 can select which devices 404are to be adjusted based on respective criticalities of the controlsystems associated with the devices 404. For example, cloud-basedproduct tracking system 402 can maintain individual device profiles (notshown) defining relative priorities of the industrial systems associatedwith each of the devices 404, and can leverage this information inconnection with determining which devices 404 are to be selected forreduced upload frequency in the event that one or more cloud resourcesare being used at an excessive rate.

The supply chain data from devices 404 are received at device interfacecomponent 414, which can store the received data on cloud storage 426.In one or more embodiments, the received supply chain data can first befiltered by a filter component 416, which can be configured to removeredundant or unnecessary data prior to storage. Filter component 416 canfilter the data according to any specified filtering criterion, whichmay be defined by a filter profile or filter configuration dataassociated with product tracking system 402. For example, valid dataranges can be defined for selected items of data received from devices404, and filter component 416 can be configured to delete data valuesthat fall outside these defined ranges. In this way, outlier dataindicative of faulty data measurements can be filtered out prior tostorage on the cloud platform. Filter component 416 can also beconfigured to identify redundant data collected from two or more ofdevices 404, and discard redundant instances of the same data. In someembodiments, filter component 416 can leverage contextual informationassociated with the data to identify such instances of redundant data.Note that server-side filtering will accrue data transition costs andaffect available bandwidth even though the data is not actively used.However, this approach is necessary if the used gateway does not offercorresponding client-side filtering. For more capable gateways,client-side filtering as described below is the preferred option.

Cloud storage 426 can comprise a subset of the cloud platform's storageresources provisioned to an end user entity (e.g., an industrialenterprise) for the purpose of storing the received supply chain data.For example, cloud storage 426 can be provided to an industrialenterprise as part of a subscription service that includes access to thecloud-based product tracking system 402 and its associated cloudservices.

As noted above, product or supply chain data can be provided to thecloud platform by cloud-capable industrial devices (e.g., industrialcontrollers, meters, historians, etc.) or through cloud proxy devicesthat collect data from such industrial devices and provide the data tothe cloud platform. Turning briefly to FIG. 5, an exemplaryconfiguration is illustrated in which an industrial device acts as acloud proxy for other industrial devices comprising an automationsystem. In the present example, an automation system (as might be partof a supply or manufacturing entity of a supply chain) comprises aplurality of industrial devices 506 ₁-506 _(N) which collectivelymonitor and/or control one or more controlled processes 502. Theindustrial devices 506 ₁-506 _(N) respectively generate and/or collectprocess data relating to the controlled process(es) 502. For industrialcontrollers such as PLCs or other automation controllers, this caninclude collecting data from telemetry devices connected to thecontroller's I/O, generating data internally based on measured processvalues, etc.

In the configuration depicted in FIG. 5, industrial device 506 ₁ acts asa proxy for industrial devices 506 ₂-506 _(N), whereby data 514 fromdevices 506 ₂-506 _(N) is sent to the cloud via proxy industrial device506 ₁. Industrial devices 506 ₂-506 _(N) can deliver their data 514 toproxy industrial device 506 ₁ over plant network or backplane 512 (e.g.,a Common Industrial Protocol network or other suitable networkprotocol). Using such a configuration, it is only necessary to interfaceone industrial device to the cloud platform (via cloud interfacecomponent 508). Accordingly, proxy industrial device 506 ₁ can include atransformation component 510 for applying suitable transformations tothe collective data 514 collected from industrial devices 506 ₂-506_(N), as well as its own control data. Such transformations can include,for example, filtering, pruning, re-formatting, summarizing, orcompressing the data prior to moving the data to the cloud platform.Since data is being gathered from multiple industrial devices accordingto this configuration, there is a possibility that redundant data may beprovided to industrial device 506 ₁ from more than one source.Accordingly, transformation component 510 may be configured to filtersuch redundant data prior to delivering the refined data to thecloud-based application. Transformation component 510 may also beconfigured to summarize the gathered data 514 according to definedsummarization criteria. The transformed data can then be pushed to thecloud as cloud data 504 via cloud interface component 508.

In some embodiments, transformation component 510 can apply contextualmetadata to the received data 514. Turning briefly to FIG. 6,transformation of raw industrial data into contextualized data by thetransformation component is illustrated. Transformation component 604receives raw industrial data 602 and enhances the data 602 with one ormore pieces of context data to yield contextualized data 606. Forexample, transformation component 604 can apply a time stamp to the rawdata 602 indicating a time, a date, and/or a production shift when thedata was generated. The applied context data may also identify aproduction area that yielded the data, a particular product that wasbeing produced when the data was generated, and/or a state of a machine(e.g., auto, semi-auto, abnormal, etc.) at the time the data wasgenerated. Such data can be leveraged by the cloud-based producttracking system to identify when a product or lot has passed through aparticular production area of a supplier or manufacturing facility.Other examples of context information include an employee on shift atthe time the data was generated, a lot number with which the data isassociated, or an alarm that was active at the time the data wasgenerated. Transformation component 604 can also apply an actionabledata tag to the raw data if it is determined that the data requiresaction to be taken by plant personnel or by the cloud-based application.

Transformation component 604 an also apply contextual information to theraw data 602 that reflects the data's location within a hierarchicalorganizational model. Such an organization model can represent anindustrial enterprise in terms of multiple hierarchical levels. In anexemplary organizational model, the hierarchical levels can include—fromlowest to highest—a workcell level, a line level, an area level, a sitelevel, and an enterprise level. Devices that are components of a givenautomation system can be described and identified in terms of thesehierarchical levels, allowing a common terminology to be used across theentire enterprise to identify devices, machines, and data within theenterprise. Some exemplary organizational models may also definerelationships between various supply chain entities (e.g. suppliers,manufacturers, inventory, retail, etc.). In some embodiments, theorganizational model can be known to the transformation component 604,which can stamp raw data 602 with a hierarchical identification tag thatindicates the data's origin within the organizational hierarchy (e.g.,Company:Marysville:DieCastArea:#1Headline:LeakTestCell).

While the proxy device illustrated in FIG. 5 is depicted as anindustrial device that itself performs monitoring and/or control of aportion of controlled process(es) 502, other types of devices can alsobe configured to serve as a cloud proxies for multiple industrialdevices according to one or more embodiments of this disclosure. Forexample, FIG. 7 illustrates an embodiment in which a firewall box 712serves as a cloud proxy for a set of industrial devices 706 ₁-706 _(N).Firewall box 712 can act as a network infrastructure device that allowsplant network 716 to access an outside network such as the Internet,while also providing firewall protection that prevents unauthorizedaccess to the plant network 716 from the Internet. In addition to thesefirewall functions, the firewall box 712 can include a cloud interfacecomponent 708 that interfaces the firewall box 712 with one or morecloud-based services, such as the cloud-based product tracking systemdescribed herein. In a similar manner to proxy industrial device 506 ₁of FIG. 5, the firewall box 712 can collect industrial data 714 fromindustrial devices 706 ₁-706 _(N), which monitor and control respectiveportions of controlled process(es) 702. Firewall box 712 can alsoinclude a transformation component 710 that applies suitabletransformations to the gathered industrial data 714 prior to pushing thedata to the cloud-based application as cloud data 704. As described inprevious examples, these transformations can include, but are notlimited to, compression, truncation, summarization, filtering,aggregation, addition of contextual metadata, or other suchtransformations in accordance with user-defined or cloud-definedrequirements. Beneficially, firewall box 712 can allow industrialdevices 706 ₁-706 _(N) to interact with the cloud platform withoutdirectly exposing the industrial devices to the Internet.

As noted above, in addition to receiving data from fixed-locationindustrial systems or supply chain entities, the cloud-based producttracking system can also collect data from mobile systems, such ascontrol and/or monitoring systems embedded in a truck or other cargovehicle that transports products between supply chain entities. FIG. 8illustrates an exemplary cloud gateway configuration that can be used tosend data from such mobile systems to a cloud platform for trackingpurposes. In the present example, it will be assumed that data is to becollected from a machine health monitoring system running on board atruck, which can provide useful information regarding a transportationstatus of products loaded on the truck. However, it is to be understoodthat the systems and methods described are applicable for collectingdata from any mobile control and/or monitoring system and sending thedata to a cloud platform. For example, these techniques can also beapplied to product health monitoring applications to determine whetheran inventory server behaves correctly.

A transportation vehicle can be provided with a local computer 802running a cloud gateway service 810. Local computer 802 may be aruggedized computer having a reinforced casing designed to withstand thevibration and turbulence that can be experienced during travel on-boardthe truck. Cloud gateway service 810 can perform similar functions tocloud interface components 508 and 708 of FIGS. 5 and 7. Communicationservices 812, also running on local computer 802, can facilitatecommunication with a controller 814, which is used to monitor and/orcontrol the on-board machine health system. The local computer 802 canalso optionally include a local human-machine interface (HMI) 808 forlocal visualization of controller data at the truck.

In one or more embodiments, the cloud gateway service 810 can be aservice (e.g., a Windows service) that runs on local computer 802on-board the truck. The cloud gateway service 810 is responsible forpushing local controller data from controller 814 to cloud platform 806via the web services exposed by a cloud application. The cloud gatewayservice 810 can also support store-and-forward logic used when theconnection between the truck and the cloud platform 806 is temporarilyinterrupted. In some embodiments, the data collected by the cloudgateway service 810 can be pushed to the cloud via a wireless radio 804on-board the truck (e.g., 3G wireless radio).

In one or more embodiments, the cloud gateway service 810 canperiodically read data from the controller 814 and a global positioningsystem (GPS, cell tower triangulation, etc.) location provider (notshown) on-board the truck and send both the controller data and thelocation data to the cloud application residing on cloud platform 806.The cloud gateway service 810 can also receive information from a cloudapplication residing on cloud platform 806 that indicates how often datashould be sent to the cloud and how the gateway should handledisconnects (store and forward behavior).

The upload frequency (slow poll mode versus fast poll mode) can becontrolled by the product tracking system on the cloud platform 806 on aper truck basis. For example, an object representing a given truck inthe product tracking system may have a property indicating the uploadmode for the given truck's cloud gateway. The cloud gateway service 810can ping the cloud platform 806 at a pre-defined frequency (e.g., onceper minute) to upload the controller data and/or to check for a changein the upload mode (fast poll mode versus slow poll mode).

Devices that send industrial, product, or transportation data to thecloud platform can determine which subsets of available data are to besent to the cloud by reading configuration data associated with thedevices' cloud interface components (e.g., cloud interface components508 or 708). Exemplary configuration data for a cloud interfacecomponent is now described with reference to FIG. 9. Configuration data902 resides locally on its associated cloud-capable device, andinstructs the device as to which data should be collected and sent tothe cloud platform, a destination cloud platform for the data, and othersuch specifics. Configuration data 902 comprises a number ofconfigurable data fields 904 that allow a user to easily configure theparameters of the cloud interface component. The exemplary configurationdata 902 illustrated in FIG. 9 includes fields for the System ID, theController ID, one or more controller tags, a cloud URL (uniformresource locator), and a maximum local storage, where the values of therespective fields can be set by the user. It is to be appreciated thatthe fields illustrated in FIG. 9 are only intended to be exemplary, andthat configuration data 902 may include any suitable set ofconfiguration fields without departing from the scope of thisdisclosure.

The System ID field can be an identifier of the control system for whichthe data is to be collected. For example, the System ID can identify aproduction area, a machine, an assembly line, or other systemdesignation. In another example, the cloud-capable device may be used tocollect data from a mobile control and/or monitoring system residing ona truck (e.g., a system health monitoring system on a cargo or servicevehicle), and the System ID can be a truck identifier. In this way, datafrom multiple trucks comprising a fleet can be collected usingrespective cloud gateways on board each truck, and the source of thedata can be identified by the cloud application by each cloud gateway'sSystem ID.

The Controller ID field can identify an industrial controller from whichthe data is to be collected (e.g., a controller associated with thecontrol system identified by the System ID field), and the ControllerTag fields can identify the particular controller tags holding the data.These can include both discrete controller tags containing digital datavalues as well as analog tags containing integer or real data values.The Cloud URL field can identify the address of the cloud platform towhich the data will be sent. The maximum local storage field can be usedto configure a maximum amount of local device storage space that is tobe used for local data storage when communication to the cloud platformhas been lost.

Returning now to FIG. 4, data received by product tracking system 402from devices 404 is optionally filtered by filter component 416 andmoved to cloud storage 426. To facilitate near real-time producttracking, product tracking system 402 can include a correlationcomponent 406 configured to aggregate and correlate subsets of thecollected data to determine a product's status within the supply chain.Correlation component 406 can leverage the data in cloud storage 426 ina number of ways to generate product tracking information. In oneexemplary scenario, product units or product lots can be associated witha unique identification number so that the products can be identified atcertain points within the supply chain. For example, products may bestamped with a unique two-dimensional (2D) barcode at the supply ormanufacturing entity (e.g., using a pin-stamper or laser marker). As theindividual product units progress through various production stages atthe supply or manufacturing entities, the barcode can be read at variouspoints using mounted or hand-held barcode readers, and production datagenerated for the product unit on the plant floor can be tied to theunique identifier before being sent to the cloud platform.

For instance, a machined part may pass through a leak test station at amanufacturing facility where a fluid pressure test is applied to thepart to ensure that the porosity of the part will not cause undesirablefluid leaks. After the pressure readings have been taken for the part,the part may advance to a barcode reading stage at the end of the leaktest station so that the part's 2D barcode can be read. The leak testdata, the identifier read from the barcode, and a timestamp indicating atime when the data was measured can then be sent to the product trackingsystem 402 on the cloud platform, providing a record of when the partpassed through the leak test station. The bundled data can be moved tothe cloud using any of the exemplary techniques described above. Forexample, a cloud-capable industrial controller that monitors andcontrols the process can receive the data from the leak test equipmentand barcode reader and send the data to the cloud platform using anintegrated cloud interface component. In another example, the data canbe sent to a cloud proxy device (e.g., a dedicated cloud proxy device, apeer industrial device as illustrated in FIG. 5, a cloud-capablefirewall device or other network infrastructure device as illustrated inFIG. 6, or other such proxy device), which then sends the data to thecloud platform.

In a similar fashion, product lots can be tracked through portions ofthe supply chain using radio frequency identification (RFID) tagsphysically attached to the lots. The RFID tag for a given lot can beread at various stages of the supply chain and sent to the cloud-basedproduct tracking system 402 together with a time-stamp to provide arecord of the lot's progress through the chain. Using these or similartechniques, a product's progress through the various plant-floorprocesses at the supplier and manufacturing entities of the supply chaincan be tracked at the cloud platform.

Additionally, cloud-based product tracking system 402 can collect dataregarding a product's progress between supply chain entities as theproducts are being transported. For example, GPS systems embedded in acargo vehicle can measure a current geographical location and/or speedof the vehicle, and a controller on-board the vehicle can bundle thislocation information with a product identifier or lot number forproducts loaded on the vehicle. The controller can also associate atime-stamp for the bundled data. The controller can then send thisbundled data to the cloud platform for storage and analysis. Moreover,when the cargo has reached its destination (e.g., a warehouse or retailoutlet), the unique product or lot identifiers can be read as theproducts are received (e.g., by hand-held readers), and a time-stampedrecord of the receipt can be sent to the cloud platform. Sales andreturns of a product at a retail outlet can also be recorded by producttracking system 402. For example, sales data can be stored in a serverat the retail outlet having access to the cloud platform, and the servercan provide sales records to product tracking system 402 according to adefined frequency (e.g., daily, when a new record is added, etc.).

Given the diverse supply chain data maintained in cloud storage 426,correlation component 406 can identify relationships between data setsthat facilitate tracking a status of a product (or group of products)through the supply chain. For example, correlation component 406 canaggregate data sets associated with a common product identifier andarrange the aggregated data into a chronological order based ontime-stamps associated with the records, providing a time-series recordof the product's progress through the supply chain.

Correlation component 406 may also identify correlations between datasets based in part on a data model 422 that models at least a portion ofthe supply chain or entities within the supply chain. An exemplary datamodel 422 can represent an industrial enterprise in terms of multiplehierarchical levels, where each level comprises units of the enterpriseorganized as instances of types and their properties. Exemplary typescan include, for example, assets (e.g., pumps, extruders, tanks,fillers, welding cells, utility meters, etc.), structures (e.g.,production lines, production areas, plants, enterprises, productionschedules, operators, etc.), and processes (e.g., quality audit,repairs, test/inspection, batch, product parameters, shifts, etc.).

Turning briefly to FIG. 10, an exemplary organizational hierarchy thatcan be used as a basis for data model 422 is illustrated. In thisexemplary organizational model, the hierarchical levels can include—fromlowest to highest—a workcell level 1002, a line level 1004, an arealevel 1006, a site level 1008, and an enterprise level 1010. The typeinstances described above—representing units of the enterprise—can bedefined for respective levels of this hierarchical structure. In one ormore embodiments, the cloud-based product tracking system describedherein can provide a standard set of types that allow the user to modelentities of a supply chain (e.g., supplier facilities, manufacturingfacilities, etc.) in terms of these standard types. The product trackingsystem can also allow custom types to be created, allowing users torepresent their particular business or manufacturing processes using acombination of standard and user-defined types.

Data model 422 can allow devices of an automation system and data itemsstored therein to be described and identified in terms of thesehierarchical levels, allowing a common terminology to be used across theentire enterprise to identify devices and data associated with thosedevices. Data model 422 can represent industrial controllers, devices,machines, or processes as data structures (e.g., type instances) withinthis organizational hierarchy to provide context for data generated andstored throughout the enterprise relative to the enterprise as a whole.Moreover, so that product tracking system 402 may more accuratelypredict estimated times of arrival for products given the products'current location in the supply chain, data model 422 can includeestimated or average processing times for respective production lines orproduction areas. That is, for various production areas, machines, orsupply chain entities, data model 422 can model an estimated or averagetime required for a product to be processed (e.g., machined,manufactured, transported, checked in, etc.) by the respective areas,machines, or entities.

In addition to modeling the plant facilities within a supply chainentity, data model 422 can also model the larger supply chain in orderto more accurately determine a current or predicted status of a productwithin the supply chain. Turning briefly to FIG. 11, an exemplary supplychain that can be modeled by data model 422 is illustrated. Thissimplified model includes supply entities 1102, manufacturing entities1104, warehouse entities 1106, and retail entities 1108. In one or moreembodiments, data model 422 can define valid supply chain paths betweenthe entities. For example, the single manufacturing entity of thepresent example may receive supplies from two suppliers—Supplier 1 andSupplier 2—and provide finished products to three warehouses—Warehouses1-3. Warehouse 1 supplies products to Retail Outlets 1 and 2, Warehouse2 supplies products to Retail Outlet 2 only, and Warehouse 2 suppliesproducts to Retail Outlets 1 and 3. Some embodiments of data model 422may model these valid supply chain paths, distances between the paths,and other relevant supply path information. Such information can beleveraged by the cloud-based product tracking system 402 to providecurrent and predicted status information for products within the supplychain, as will be described in more detail below.

Thus, in embodiments in which data model 422 is used, correlationcomponent 406 can leverage data model 422 to identify correlationsbetween subsets of data in cloud storage 426. This can include, forexample, associating a subset of data for a given product with aparticular path through the supply chain (e.g., one of the supply pathsillustrated in FIG. 10) so that product flow analysis can be performedon the path based on the identified subset of data. In another example,correlation component 406 can correlate inventory data for a particularproduct received from a retail outlet with product flow data receivedfrom a particular warehouse or manufacturing entity from which theproduct was received.

Product tracking system 402 can include a tracking component 412configured to analyze supply chain data stored in cloud storage 426, aswell as additional correlation data generated by correlation component406, to generate historical, current, or predicted status data forproducts in the supply chain. Tracking component 412 can provide suchtracking data to authorized cloud-capable client devices 410 via aclient interface component 408. For example, in response to a requestfor current status information from a client device, tracking component412 can search the supply chain data on cloud storage 426 and identifythe most recent data received for the specified product (e.g., dataassociated with a unique barcode number, RFID tag, etc.). Trackingcomponent 412 can identify the current location of the product based on,for example, a location of origin for the most recent data (e.g., aparticular production line within a manufacturing facility, ageographical location reported by a cargo vehicle transporting theproduct, invoice information indicating receipt of the product at awarehouse or retail outlet, etc.). In addition to the location, trackingcomponent 412 may identify a current status of the product based onrelated production or transportation data that has been correlated withthe product by correlation component 406. For example, if the mostrecent data received for a specified product indicates that the productis currently at a product palletizing area of a manufacturing facility,but the most recent machine status data received for a palletizingmachine that stacks and wraps product for shipment indicates that thepalletizing machine is in an abnormal downtime state, tracking component412 can determine based on this information that the product iscurrently stalled at the palletizing area and report this status to theclient device.

Like correlation component 406, tracking component 412 can referencedata model 422 in connection with determining a status of products inthe supply chain. For example, one of the client devices 410 may requestan estimated time that a specified product or lot will arrive at aparticular point in the supply chain. Tracking component 412 canreference the supply chain data in cloud storage 426 to determine acurrent location and status of the product. Tracking component 412 canthen reference data model 422 to determine estimated processing timesassociated with each entity in the supply chain path between the currentlocation and the specified destination. Based on this information,tracking component 412 can estimate the time of arrival for the productand report this estimate to the client device. Tracking component 412may adjust such estimated arrival times based on current machine statusinformation. For example, if tracking component 412 determines that theproduct is stalled at a particular production area because of a machinedowntime event (e.g., the faulty palletizing machine in the exampledescribed above), tracking component 412 may apply an adjustment to theestimated arrival time to allow for the unplanned machine outage. Usersof client devices 410 can compare such information with pending salesorders to facilitate order management and planning.

In addition to providing information regarding current and predictedstatus of products within the supply chain, tracking component 412 canalso analyze historical supply chain data to identify product flowtrends, potential bottlenecks, or inefficiencies in product flow throughthe supply chain. For example, tracking component 412 can analyzehistorical supply chain data over a range of time and calculate anaverage amount of time that products spend at respective segments of thesupply chain. This can include determining an average time spent at eachsupply chain entity, time spent traversing supply chain path segmentsbetween entities, time spent being processed by respective productionstages within a given manufacturing entity, or other such metrics. Basedon these results, tracking component 412 can identify segments of thesupply chain having high latencies and present these potential supplychain bottlenecks to a user (e.g., via client devices 410). In one ormore embodiments, tracking component 412 can perform this latencyanalysis on a per-product basis, since different products may beprocessed differently by the various supply chain entities andproduction areas. Accordingly, tracking component 412 can independentlyassess potential latency issues for each type of product in the supplychain.

Client interface component 408 can report results of these assessmentsto authorized client devices 410 having access to the cloud platform. Insome embodiments, tracking component 412 can also generaterecommendations for eliminating identified latency issues based on theseresults. In an exemplary scenario, tracking component 412 may identifyone or more segments of the supply chain having latencies above adefined threshold, signifying a potential bottleneck in the supplychain. Tracking component 412 can then generate a recommendation forreducing the latencies of the identified segments based in part on datamodel 422, which models relationships between the various segments ofthe supply chain. For example, based on the relationship informationprovided by data model 422, tracking component 412 may determine that ahigh latency observed at a first production area is due to a high numberof machine outages at a second production area that supplies product ormaterials to the first production area. Accordingly, tracking component412 may generate a recommendation that a focused maintenance effort onthe unreliable machine in the second production area would increaseproduct throughput at the first production area. In one or moreembodiments, product tracking system 402 can be interfaced with amaintenance scheduling system on the plant floor and proactivelyschedule maintenance on the machines or devices associated with theidentified bottleneck area.

Tracking component 412 can also analyze historical supply chain data toobtain metrics on supplier performance. For example, if a manufacturingfacility receives materials, parts, or products from multiple suppliers,tracking component 412 can analyze subsets of the supply chain dataseparately for each supplier to determine metrics on the respectivesuppliers, such as average turn-around time between ordering and receiptof materials. This information can be used by plant personnel toidentify the most reliable suppliers of a given material or part.

In another exemplary application, the collected supply chain data can beused to manage inventory. In one exemplary technique, tracking component412 can quantify a demand for a product based on an analysis of pendingsales orders and historical sales data received from one or more retailentities of the supply chain. As described in previous examples, thissales data can be received at the cloud platform from cloud-capablebusiness servers at the respective retail entities and stored on cloudstorage 426. Cloud storage 426 may also contain current warehouseinventory data for the product (received from respective cloud-capableservers at one or more warehouses). Based on an analysis of this data,tracking component 412 can determine a level of demand for the product,and determine whether current inventory levels and production rates willensure that the demand will always be met. In making this determination,tracking component 412 may consider expected latencies at multiplesegments of the supply chain and assess the demand in view of theseexpected latencies.

For example, tracking component 412 may determine a rate at which theproduct is sold at the retail entities, and assess whether present andfuture inventory levels will meet this demand based on current inventorylevel, an estimated amount of time required to transport the productfrom the warehouse entities to the retail entities, an estimated amountof time required to manufacture the product at the manufacturing entityand to transport the finished product to the warehouse entities, orother estimated latency values. Tracking component 412 can then generatea recommendation for altering one or more supply chain processes if itis determined that the current rates of product manufacture, productconsumption, and inventory replenishment will eventually result indepletion of inventory levels and unsatisfied demand. The recommendationmay be directed toward any segment of the supply chain. For example,tracking component 412 may generate a recommendation to maintain ahigher warehouse inventory level calculated to ensure that the demandseen at the retail entities will be met. Additionally or alternatively,tracking component 412 may generate a recommendation to increase a rateof production at a manufacturing entity calculated to maintain suitableinventory levels at the warehouse entities, based in part on theestimated latencies calculated for the relevant production areas andtransportation paths used to transport the product from themanufacturing entities to the warehouse entities. In another example,tracking component 412 may also determine that one or more supplyentities must increase production of a raw material or part required bythe manufacturing entity to fabricate the product in order to maintainnecessary inventory levels downstream. Thus, cloud-based producttracking system can recommend modifications to processes at any portionof the supply chain to guarantee that an observed demand at a retailentity will always be met. Similar to previous examples, trackingcomponent 412 can make these determinations based in part on supplychain interdependencies identified by correlation component 406 and/ordata model 422.

One or more embodiments of product tracking system 402 may, in additionto or instead of providing recommendations, dynamically alter supplychain processes in response to detected inefficiencies or deficiencies.In such embodiments, product tracking system 402 may issue instructionsto one or more devices 404 via the cloud platform to implement thenecessary changes. This can include, for example, altering a shippingschedule maintained in a warehouse server to schedule more or fewershipments of a particular part or product, altering a productionschedule maintained in a plant server to increase the number of shiftsduring which a particular product will be manufactured, modifying asupplier order for a raw material or part used to manufacture theproduct, or other dynamic modifications to supply chain processes.Turning briefly to FIG. 12, an exemplary architecture for issuing supplychain management instructions from a cloud platform is illustrated. Asin previous examples, a cloud platform hosts product tracking services,including a tracking component 1202 that analyzes supply chain datastored on cloud storage 1208 in view of data model 1206 (similar to datamodel 422) that models hierarchical, geographical, and/or temporalrelationships between supply chain entities. The product tracking systemcan exchange data with devices in a plant facility via device interfacecomponent 1204. In the present exemplary configuration, device interfacecomponent 1204 exchanges data with control-level devices 1214 (e.g.,industrial controllers, VFDs, etc.) on a plant network 1216 andbusiness-level devices 1228 (e.g., business servers, financial systems,order management servers, etc.) on a business network 1226 via a cloudproxy device 1220 (e.g., a firewall box or other network infrastructuredevice that acts as a cloud proxy, as illustrated in FIG. 7). Cloudproxy device 1220 is communicatively coupled to the cloud platform viacloud interface component 1222. If tracking component 1202 determinesthat a modification must be made to one or more supply chain processeson the plant-floor or business-level side of the enterprise, trackingcomponent 1202 can instruct device interface component 1204 to sendsupply chain management data 1212 to the cloud proxy device 1220 to bedirected to the appropriate control-level or business-level device.Cloud proxy device 1220 can relay supply chain management data to therespective devices according to the particular communication protocolused by the target device. For example, cloud proxy device 1220 can sendmanagement instructions to the control-level devices 1214 using CommonIndustrial Protocol (CIP), and to the business-level systems usingTCP/IP protocol.

Visualization of tracking information at the client devices is nowdiscussed with reference to FIG. 4. To visualize tracking information,recommendations, and other information generated by product trackingsystem 402, client interface component 408 can serve predesignedinterface displays 424 to any Internet-capable client devices 410 havingaccess privileges to product tracking system 402, and render trackingdata via the display screens using the client device's native displaycapabilities. To this end, a set of preconfigured display screens 424can be stored on cloud storage associated with product tracking system402, and the client interface component 408 can deliver selected displayscreens 424 in response to invocation by the client device 410. Thedisplay screens 424 can be developed, for example, using a developmentenvironment provided by product tracking system 402. In one or moreembodiments, product tracking system 402 can provide this developmentenvironment as a cloud service, allowing a developer to remotely accessa set of cloud-side interface screen development tools to facilitatedesign of interface screen layouts, data links, graphical animations,and navigation links between screens. In such embodiments, the interfacescreen development environment can allow the developer to leverage cloudresources (e.g., cloud storage and processing resources) to develop aset of display screens 424 for a given operator interface application tobe run on product tracking system 402. Alternatively, some embodimentsof product tracking system 402 can allow display screens developed byexternal display development applications to be uploaded to the cloudplatform and executed by the product tracking system 402 during runtime.

Each of the display screens 424 can include display tags defining whichdata items are to be displayed on the respective screens, formats forthe respective data items, desired graphical animations to be associatedwith the respective data items, graphical elements to be included on therespective display screens (e.g., externally defined graphical elementsdefinitions), and other such configuration information. Some displayscreens 424 can also be configured to render alarm or informationalmessages in response to determinations that subsets of the supply chaindata have met certain conditions (e.g., in response to a determinationthat a given industrial parameter has exceeded a defined setpoint, orthat a defined production goal has been met). Since supply chain datacan be received from multiple industrial systems and supply chainentities (possibly at diverse geographical locations), alarms,notification events, animation triggers, and the like can be defined interms of composite data values for multiple supply chain entities,allowing the entities to be viewed and analyzed from a high-levelenterprise perspective. For example, consider a scenario in which aparticular product is being produced at three different facilities.Respective devices 404 can deliver production statistics to the deviceinterface component 414, and the product tracking system 402 canaggregate these production statistics substantially in real-time toyield composite data (e.g., a total production count for all threefacilities) even though the three facilities may not be communicativelynetworked together over a data network. One or more of the displaysscreens 424 can be configured to display these composite productionstatistics, trigger alarms or graphical animations as a function of thecomposite statistics, etc. Client interface component 408 can deliverthese display screens to authorized client devices 410 having Internetaccess and suitable authorization credentials, providing owners of theclient devices 410 with an enterprise-level view of the multipleindustrial systems and supply chain entities monitored by producttracking system 402.

The cloud-based product tracking system 402 can support conditionaldisplay of supply chain and tracking data based on defined user roleshaving different levels of access privileges. Accordingly, producttracking system 402 can allow multiple user roles to be defined (e.g.,operator, plant manager, finance, accounting, administrator, etc.), andcustomize the presentation of tracking data for the respective userroles. For example, an administrator or other user with administrativeprivileges can associate a given user role with a subset of displayscreens 424 that users belonging to that user role are allowed toaccess. In another example, selected data displays on the displayscreens 424 can be configured with visibility links that render theselected data visible only to users associated with certain authorizeduser roles.

One or more embodiments of the cloud-based product tracking system 402can allow individual users to subscribe to selected real-time data feedsfrom one or more industrial systems or supply chain entities. Forexample, a maintenance engineer may be interested in monitoring aparticular performance metric of a specific machine at a plant facility.Product tracking system 402 can allow the engineer to identify themachine and the performance metric (e.g., a temperature of a die castoven) and add this data feed to one of the existing display screens 424as a user preference. Alternatively, product tracking system 402 cancreate a new custom screen in response to the subscription request. Ineither case, the subscription information can be stored in a userprofile associated with the engineer, and the client interface component408 can render a live feed of the selected performance metric to theengineer's client device upon request.

Since the operator interface displays can be served to diverse types ofclient devices (e.g., desktop computers, mobile phones, tabletcomputers, laptop computers, HMI terminals, television monitors, etc.),the cloud-based product tracking system 402 can render a given displayscreen in a format suitable for display on the device invoking thescreen, and in a manner that makes efficient use of the device'sresources. For example, if the product tracking system 402 receives arequest for a display screen from a cellular phone, client interfacecomponent 408 can deliver the requested display screen to the cellularphone in a format adapted to the display capabilities of the phone(e.g., at a display ratio and resolution suitable for display on thephone's screen).

In some embodiments, client applications 410 can run softwareapplications designed to interact with product tracking system 402. Forexample, a product tracking client application can be provided that,when installed and executed on an Internet-capable client device,provides access to product tracking data residing on the cloud platform.Such client applications can include configuration menus that allow thedevice owner to identify the cloud platform and/or product tracking datato be accessed (e.g., a URL of the cloud platform). Once communicationis established, the client application can provide pre-defined views ofselected subsets of the stored product tracking data. These pre-definedviews can include, for example, position charts that trace a product'spath through the supply chain, graphs representing latencies of aproduct at respective stages of the supply chain, inventory levels of aproduct at respective warehouse facilities, scheduling screens showingestimated times of arrival for products, notification screens providingalerts that a current rate of flow through the supply chain is notsufficient to meet a current demand for a product, or other suchpre-defined visualizations.

To accurately represent temporal relationships between supply chainevents reported by diverse industrial devices, industrial and supplychain data provided by devices 404 should be time-stamped using a commonsynchronized time standard. Accordingly, in order to accuratelydetermine when an event at a first supply chain entity occurred relativeto an event at a second supply chain entity, the internal device clocksused by the respective devices 404 to time-stamp the data should besynchronized. To this end, data sourcing devices can include time stampcomponents configured to synchronize the internal clocks with a commonclock maintained on the cloud platform.

FIG. 13 is a high-level overview depicting synchronization of a deviceclock with a cloud clock. In the present example, industrial devices1308 ₁ and 1308 ₂ are configured to provide data to a cloud platform1302 (e.g., over an Internet layer) for use by product tracking services1316 residing on the cloud platform 1302. Industrial devices 1308 ₁ and1308 ₂ can reside at different locations (Location 1 and Location 2).For example, industrial devices 1308 ₁ and 1308 ₂ may be located atdifferent plant facilities or at different areas within the same plantfacility. In some cases, industrial devices 1308 ₁ and 1308 ₂ may belocated in different time zones. To ensure that data received fromindustrial devices 1308 ₁ and 1308 ₂ are time stamped according to acommon time reference, internal device clocks 1312 ₁ and 1312 ₂ can besynchronized to global clock via an atomic clock receiver or a GPSreceiver. Alternatively, internal device clocks 1312 ₁ and 1312 ₂ can besynchronized to a common cloud clock 1306 maintained by the cloudplatform 1302, as illustrated in FIG. 13. Time stamp components 1310 ₁and 1310 ₂ associated with industrial devices 1308 ₁ and 1308 ₂ can thenapply time stamps to their respective data based on the times providedby synchronized device clocks 1312 ₁ and 1312 ₂. In this way, dataevents at each location will be accurately time stamped using a commonclock standard that accurately reflects when an event at one locationoccurred relative to an event at the other location. Moreover, dataitems from both locations can be aggregated at cloud platform 1302 andarranged chronologically based on the synchronized time stamps to yieldan event sequence that includes data events from both locations.Although internal device clocks 1312 ₁ and 1312 ₂ have been synchronizedwith a global or centralized clock, time stamps may still be viewedlocally at the industrial devices 1308 ₁ and 1308 ₂ according to theirrespective local time zones.

One or more embodiments of the cloud-based product tracking system canalso include notification services for notifying relevant personnel of adetected supply chain event. Accordingly, such embodiments of theproduct tracking system can include a notification component configuredto deliver such notifications to selected client devices according topredefined user preferences. FIG. 14 illustrates an exemplarynotification architecture according to one or more embodiments of thisdisclosure. Similar to previous examples, product tracking system 1404executing on cloud platform 1402 receives industrial and/or supply chaindata from devices associated with supply chain 1416 via device interfacecomponent 1412. The supply chain data is stored on cloud storage 1406,where the data can be analyzed by tracking component 1408. Trackingcomponent 1408 can analyze the stored supply chain data in view of adata mode of the supply chain or segments thereof and/or correlationsbetween subsets of the data identified by a correlation component (notshown).

In the present example, the cloud-based product tracking system 1404running on the cloud platform 1402 can include a notification component1410 configured to route notifications 1418 to appropriate plantpersonnel in accordance with predefined notification criteria. Forexample, tracking component 1408 can determine whether selected subsetsof the supply chain data stored on cloud storage 1406 meet one or morepredefined notification conditions. These can include such conditions asdetecting that a particular process value has exceeded a definedsetpoint; detecting a transition to a particular machine state;detecting an alarm condition; determining that a specified production,inventory, or sales goal has been achieved; determining that an orderhas been fulfilled or a product shipment has been received at aparticular supply chain entity; or other such conditions that can bedetected through analysis of the supply chain data. When trackingcomponent 1408 detects a condition within the supply chain data thatmatches a notification criterion, tracking component 1408 can informnotification component 1410 that personnel are to be notified. Inresponse, notification component 1410 can identify one or more specificplant employees who are to receive the notification, as well asinformation identifying a user notification device, phone number, oremail address for each person to be notified.

In one or more embodiments, notification component 1410 can determinethis notification information by cross-referencing configurationinformation that identifies which personnel are to be notified for agiven type of condition, one or more notification methods for eachidentified person, and/or other relevant information. When trackingcomponent 1408 determines that a subset of the supply chain data meets anotification condition, notification component 1410 can reference theconfiguration data to determine, for example, which personnel should benotified, which user devices should receive the notification, a requiredaction to be taken by the recipient, a due date for the action, a formatfor the notification, and/or other relevant information. Theconfiguration data can maintain multiple separate personnel listsrespectively associated with different types of actionable situations.In some embodiments, the personnel list selected for a givennotification can be at least partly a function of context dataassociated with the supply chain data (e.g., context information appliedby transformation components 510, 604, or 710). For example, if thesupply chain data indicates that a process parameter has exceeded asetpoint value, notification component 1410 can identify the list ofpersonnel to receive the notification based on the area or workcell towhich the process parameter relates.

Once notification component 1410 has determined the appropriatepersonnel and devices to be notified, the notification component 1410can deliver notifications 1418 to one or more notification destinations.The notification can be sent to one or more identified Internet-capableclient devices 1414, such as a phone, a tablet computer, a desktopcomputer, or other suitable devices. In some embodiments, a cloudapplication running on the cloud platform can provide a mechanism fornotified personnel to communicate with one another via the cloud (e.g.,establish a conference call using Voice-over-IP). In some embodiments,the notification component 1410 can be configured to send thenotification 1418 periodically at a defined frequency until the userpositively responds to the notification (e.g., by sending a manualacknowledgement via one of the client devices 1414). Notificationcomponent 1410 can also be configured to escalate an urgency ofhigh-priority notifications if an acknowledgment is not received withina predetermined amount of time. This urgency escalation can entailsending the notification 1418 at a gradually increasing frequency,sending the notification to devices associated with secondary personnelif the primary personnel do not respond within a defined time period, orother such escalation measures.

FIGS. 15-16 illustrate various methodologies in accordance with one ormore embodiments of the subject application. While, for purposes ofsimplicity of explanation, the one or more methodologies shown hereinare shown and described as a series of acts, it is to be understood andappreciated that the subject innovation is not limited by the order ofacts, as some acts may, in accordance therewith, occur in a differentorder and/or concurrently with other acts from that shown and describedherein. For example, those skilled in the art will understand andappreciate that a methodology could alternatively be represented as aseries of interrelated states or events, such as in a state diagram.Moreover, not all illustrated acts may be required to implement amethodology in accordance with the innovation. Furthermore, interactiondiagram(s) may represent methodologies, or methods, in accordance withthe subject disclosure when disparate entities enact disparate portionsof the methodologies. Further yet, two or more of the disclosed examplemethods can be implemented in combination with each other, to accomplishone or more features or advantages described herein.

FIG. 15 illustrates an example methodology 1500 for tracking productthrough a supply chain using a cloud platform. Initially, at 1502,supply chain data relating to a product is collected at a cloud platformas the product traverses a supply chain. This data can includeproduction data received from industrial devices at a supplier ormanufacturing facility, location or status data received from cargovehicles as the product is being transported between supply chainentities, sales data received from a business server at a retail outlet,shipping data received from an inventory server at a warehouse, or othersuch information. At 1504, the supply chain data is aggregated andcorrelated at the cloud platform. In some embodiments, the data can beaggregated and correlated based on contextual information appended tothe data prior to being received at the cloud platform (or applied atthe cloud platform). The data can also be aggregated and correlatedbased in part on a data model that defines relationships between supplychain entities, or between devices comprising the respective entities.At 1506, tracking information for the product is generated based onresults of the aggregation and correlation of step 1504. The trackinginformation can include a location of the product within the supplychain, an estimated time of arrival of the product at a specified pointin the supply chain, a status of the product (e.g. “in transit,” “inproduction,” “delayed,” etc.), or other such status information. At1508, the tracking information is sent to a cloud-capable client device(e.g., via an Internet connection).

FIG. 16 illustrates an example methodology 1600 for identifyinginefficiencies in a supply chain using a cloud platform. Initially, at1602, supply chain data is received at a cloud platform from multiplesupply chain entities (e.g., supplier facilities, manufacturingfacilities, warehouses, retail outlets, transportation vehicles, etc.).At 1604, the supply chain data is aggregated and correlated at the cloudplatform. At 1606, an inefficiency of the supply chain is identifiedbased on the aggregated and correlated supply chain data. This caninclude, for example, analyzing historical product flow data to identifyhigh latency areas representing potential bottlenecks, identifying areashaving a high number of downtime occurrences, or other suchinefficiencies that impact product flow through the supply chain. Asdescribed in previous examples, the aggregated and correlated supplychain data can be analyzed in view of a data model of the supply chainto facilitate identification of potential bottlenecks or otherinefficiencies. At 1608, information regarding the identifiedinefficiency is delivered to a cloud-capable client device from thecloud platform.

Embodiments, systems, and components described herein, as well asindustrial control systems and industrial automation environments inwhich various aspects set forth in the subject specification can becarried out, can include computer or network components such as servers,clients, programmable logic controllers (PLCs), automation controllers,communications modules, mobile computers, wireless components, controlcomponents and so forth which are capable of interacting across anetwork. Computers and servers include one or more processors—electronicintegrated circuits that perform logic operations employing electricsignals—configured to execute instructions stored in media such asrandom access memory (RAM), read only memory (ROM), a hard drives, aswell as removable memory devices, which can include memory sticks,memory cards, flash drives, external hard drives, and so on.

Similarly, the term PLC or automation controller as used herein caninclude functionality that can be shared across multiple components,systems, and/or networks. As an example, one or more PLCs or automationcontrollers can communicate and cooperate with various network devicesacross the network. This can include substantially any type of control,communications module, computer, Input/Output (I/O) device, sensor,actuator, and human machine interface (HMI) that communicate via thenetwork, which includes control, automation, and/or public networks. ThePLC or automation controller can also communicate to and control variousother devices such as I/O modules including analog, digital,programmed/intelligent I/O modules, other programmable controllers,communications modules, sensors, actuators, output devices, and thelike.

The network can include public networks such as the internet, intranets,and automation networks such as control and information protocol (CIP)networks including DeviceNet, ControlNet, and Ethernet/IP. Othernetworks include Ethernet, DH/DH+, Remote I/O, Fieldbus, Modbus,Profibus, CAN, wireless networks, serial protocols, and so forth. Inaddition, the network devices can include various possibilities(hardware and/or software components). These include components such asswitches with virtual local area network (VLAN) capability, LANs, WANs,proxies, gateways, routers, firewalls, virtual private network (VPN)devices, servers, clients, computers, configuration tools, monitoringtools, and/or other devices.

In order to provide a context for the various aspects of the disclosedsubject matter, FIGS. 17 and 18 as well as the following discussion areintended to provide a brief, general description of a suitableenvironment in which the various aspects of the disclosed subject mattermay be implemented.

With reference to FIG. 17, an example operating environment 1710 forimplementing various aspects of the aforementioned subject matterincludes a computer 1712. The computer 1712 includes a processing unit1714, a system memory 1716, and a system bus 1718. The system bus 1718couples system components including, but not limited to, the systemmemory 1716 to the processing unit 1714. The processing unit 1714 can beany of various available processors. Multi-core microprocessors andother multiprocessor architectures also can be employed as theprocessing unit 1714.

The system bus 1718 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, 8-bit bus, IndustrialStandard Architecture (ISA), Micro-Channel Architecture (MSA), ExtendedISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Universal Serial Bus (USB),Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), and Small Computer SystemsInterface (SCSI).

The system memory 1716 includes volatile memory 1720 and nonvolatilememory 1722. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer1712, such as during start-up, is stored in nonvolatile memory 1722. Byway of illustration, and not limitation, nonvolatile memory 1722 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable PROM (EEPROM), or flashmemory. Volatile memory 1720 includes random access memory (RAM), whichacts as external cache memory. By way of illustration and notlimitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), anddirect Rambus RAM (DRRAM).

Computer 1712 also includes removable/non-removable,volatile/non-volatile computer storage media. FIG. 17 illustrates, forexample a disk storage 1724. Disk storage 1724 includes, but is notlimited to, devices like a magnetic disk drive, floppy disk drive, tapedrive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memorystick. In addition, disk storage 1724 can include storage mediaseparately or in combination with other storage media including, but notlimited to, an optical disk drive such as a compact disk ROM device(CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RWDrive) or a digital versatile disk ROM drive (DVD-ROM). To facilitateconnection of the disk storage 1724 to the system bus 1718, a removableor non-removable interface is typically used such as interface 1726.

It is to be appreciated that FIG. 17 describes software that acts as anintermediary between users and the basic computer resources described insuitable operating environment 1710. Such software includes an operatingsystem 1728. Operating system 1728, which can be stored on disk storage1724, acts to control and allocate resources of the computer 1712.System applications 1730 take advantage of the management of resourcesby operating system 1728 through program modules 1732 and program data1734 stored either in system memory 1716 or on disk storage 1724. It isto be appreciated that one or more embodiments of the subject disclosurecan be implemented with various operating systems or combinations ofoperating systems.

A user enters commands or information into the computer 1712 throughinput device(s) 1736. Input devices 1736 include, but are not limitedto, a pointing device such as a mouse, trackball, stylus, touch pad,keyboard, microphone, joystick, game pad, satellite dish, scanner, TVtuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 1714through the system bus 1718 via interface port(s) 1738. Interfaceport(s) 1738 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 1740 usesome of the same type of ports as input device(s) 1736. Thus, forexample, a USB port may be used to provide input to computer 1712, andto output information from computer 1712 to one or more output devices1740. Output adapter 1742 is provided to illustrate that there are someoutput devices 1740 like monitors, speakers, and printers, among otheroutput devices 1740, which require special adapters. The output adapters1742 include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 1740and the system bus 1718. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 1744.

Computer 1712 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)1744. The remote computer(s) 1744 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer1712. For purposes of brevity, only a memory storage device 1746 isillustrated with remote computer(s) 1744. Remote computer(s) 1744 islogically connected to computer 1712 through a network interface 1748and then physically connected via communication connection 1750. Networkinterface 1748 encompasses communication networks such as local-areanetworks (LAN) and wide-area networks (WAN). LAN technologies includeFiber Distributed Data Interface (FDDI), Copper Distributed DataInterface (CDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5 and thelike. WAN technologies include, but are not limited to, point-to-pointlinks, circuit switching networks like Integrated Services DigitalNetworks (ISDN) and variations thereon, packet switching networks, andDigital Subscriber Lines (DSL).

Communication connection(s) 1750 refers to the hardware/softwareemployed to connect the network interface 1748 to the system bus 1718.While communication connection 1750 is shown for illustrative clarityinside computer 1712, it can also be external to computer 1712. Thehardware/software necessary for connection to the network interface 1748includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems and DSL modems, ISDN adapters, and Ethernet cards.

FIG. 18 is a schematic block diagram of a sample-computing environment1800 with which the disclosed subject matter can interact. Thesample-computing environment 1800 includes one or more client(s) 1802.The client(s) 1802 can be hardware and/or software (e.g., threads,processes, computing devices). The sample-computing environment 1800also includes one or more server(s) 1804. The server(s) 1804 can also behardware and/or software (e.g., threads, processes, computing devices).The servers 1804 can house threads to perform transformations byemploying one or more embodiments as described herein, for example. Onepossible communication between a client 1802 and a server 1804 can be inthe form of a data packet adapted to be transmitted between two or morecomputer processes. The sample-computing environment 1800 includes acommunication framework 1806 that can be employed to facilitatecommunications between the client(s) 1802 and the server(s) 1804. Theclient(s) 1802 are operably connected to one or more client datastore(s) 1808 that can be employed to store information local to theclient(s) 1802. Similarly, the server(s) 1804 are operably connected toone or more server data store(s) 1810 that can be employed to storeinformation local to the servers 1804.

What has been described above includes examples of the subjectinnovation. It is, of course, not possible to describe every conceivablecombination of components or methodologies for purposes of describingthe disclosed subject matter, but one of ordinary skill in the art mayrecognize that many further combinations and permutations of the subjectinnovation are possible. Accordingly, the disclosed subject matter isintended to embrace all such alterations, modifications, and variationsthat fall within the spirit and scope of the appended claims.

In particular and in regard to the various functions performed by theabove described components, devices, circuits, systems and the like, theterms (including a reference to a “means”) used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., a functional equivalent), even though not structurallyequivalent to the disclosed structure, which performs the function inthe herein illustrated exemplary aspects of the disclosed subjectmatter. In this regard, it will also be recognized that the disclosedsubject matter includes a system as well as a computer-readable mediumhaving computer-executable instructions for performing the acts and/orevents of the various methods of the disclosed subject matter.

In addition, while a particular feature of the disclosed subject mattermay have been disclosed with respect to only one of severalimplementations, such feature may be combined with one or more otherfeatures of the other implementations as may be desired and advantageousfor any given or particular application. Furthermore, to the extent thatthe terms “includes,” and “including” and variants thereof are used ineither the detailed description or the claims, these terms are intendedto be inclusive in a manner similar to the term “comprising.”

In this application, the word “exemplary” is used to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “exemplary” is not necessarily to be construed as preferred oradvantageous over other aspects or designs. Rather, use of the wordexemplary is intended to present concepts in a concrete fashion.

Various aspects or features described herein may be implemented as amethod, apparatus, or article of manufacture using standard programmingand/or engineering techniques. The term “article of manufacture” as usedherein is intended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. For example, computerreadable media can include but are not limited to magnetic storagedevices (e.g., hard disk, floppy disk, magnetic strips . . . ), opticaldisks [e.g., compact disk (CD), digital versatile disk (DVD) . . . ],smart cards, and flash memory devices (e.g., card, stick, key drive . .. ).

1. A product tracking system, comprising: a memory that storescomputer-executable components; a processor operatively coupled to thememory that executes computer-executable components, including: a deviceinterface component configured to receive supply chain data from devicesof a supply chain, wherein the device interface component receives thesupply chain data on a cloud platform; a correlation componentconfigured to aggregate and correlate subsets of the supply chain datato yield correlated data; and a tracking component configured todetermine a status of a product within the supply chain based on thecorrelated data.
 2. The product tracking system of claim 1, furthercomprising a client interface component configured to serve a displayscreen to a client device and to visualize information regarding thestatus of the product on the display screen.
 3. The product trackingsystem of claim 1, wherein the correlation component determines acorrelation between subsets of the supply chain data based in part on adata model that models at least a portion of the supply chain.
 4. Theproduct tracking system of claim 1, wherein the tracking component isfurther configured to identify a product flow inefficiency associatedwith a portion of the supply chain based on an analysis of thecorrelated data over a time range.
 5. The product tracking system ofclaim 4, wherein the tracking component is further configured togenerate a recommendation for adjusting at least one supply chainprocess to mitigate the product flow inefficiency.
 6. The producttracking system of claim 1, wherein the tracking component is furtherconfigured to predict a level of demand for the product based on ananalysis of the supply chain data.
 7. The product tracking system ofclaim 6, wherein the tracking component is further configured togenerate a recommended modification to at least one supply chain processbased on the level of demand.
 8. The product tracking system of claim 7,wherein the recommended modification comprises a modification predictedto adjust an inventory level for the product to a level that satisfiesthe level of demand.
 9. The product tracking system of claim 6, whereinthe tracking component is further configured to generate or alter anorder for materials based on the level of demand.
 10. The producttracking system of claim 3, wherein the tracking component is furtherconfigured to output an estimated time of arrival for the product toreach a specified point in the supply chain based on the status andlatency information modeled by the data model.
 11. A method for trackingproduct through a supply chain, comprising: receiving, at a cloudplatform, supply chain data from a plurality of devices within a supplychain; aggregating and correlating subsets of the supply chain datayielding correlated data; and identifying a status of a product withinthe supply chain based on the correlated data.
 12. The method of claim11, further comprising: delivering a display screen to a client devicevia the cloud platform; and rendering information regarding the statuson the display screen.
 13. The method of claim 11, wherein theaggregating and correlating comprises determining a correlation betweensubsets of the supply chain data based in part on a data model of atleast a portion of the supply chain.
 14. The method of claim 11, furthercomprising identifying an inefficiency in a product flow through thesupply chain based on an analysis of the correlated data over a timerange.
 15. The method of claim 14, further comprising outputting arecommended adjustment to at least one supply chain process predicted tomitigate the inefficiency.
 16. The method of claim 11, furthercomprising predicting a demand level for the product based on ananalysis of the supply chain data.
 17. The method of claim 16, furthercomprising outputting a recommended adjustment to at least one supplychain process predicted to maintain an inventory level that satisfiesthe demand level.
 18. The method of claim 16, further comprisinggenerating or adjusting an order for materials based on the demandlevel.
 19. The method of claim 13, further comprising outputting anestimated time at which the product will arrive at a specified point inthe supply chain based on the status and latency information read fromthe data model.
 20. A computer-readable medium having stored thereoncomputer-executable instructions that, in response to execution, cause acomputing system to perform operations, including: collecting, frommultiple devices within a supply chain, data relating to a product inthe supply chain; storing the data in storage associated with a cloudplatform; aggregating and correlating subsets of the data at the cloudplatform to yield correlated data; and generating first outputinformation identifying a status of the product within the supply chain.21. The computer-readable medium of claim 20, wherein the statuscomprises at least one of a current location of the product within thesupply chain, an estimated time of arrival of the product at a specifiedpoint within the supply chain, identification of whether the product isin production, identification of whether the product is in transit, aninventory level for the product, or a demand level for the product. 22.The computer-readable medium of claim 20, further comprising generatingsecond output information identifying a product flow inefficiencyassociated with a system within the supply chain based on an analysis ofthe correlated data.